"""
@Author  : 康帅
@Time    : 2021/3/13 14:14
@Function: 自定义装饰器
"""

import logging

logging.basicConfig(level=logging.INFO)

"""
需求：希望每一个函数在被调用之前和被调用之后，记录一条日志
"""


def logging_decorator(func):
    """ 记录日志的装饰器 """

    def wrapper_logging(*args, **kwargs):
        logging.info("开始执行时间 %s() ..." % func.__name__)
        func(*args, **kwargs)
        logging.info("%s() 执行完成！" % func.__name__)

    return wrapper_logging


def show_info(*args, **kwargs):
    print("这是一个测试函数", args, kwargs)


# 装饰器使用的方法之一：建议使用一
@logging_decorator
def show_min(a, b):
    print("%d、%d 中的最小值是：%d" % (a, b, a + b))


if __name__ == '__main__':
    # 装饰器使用的方法之二
    decorator_info = logging_decorator(show_info)
    decorator_info('arg1', 'arg2', kwarg1=1, kwarg2=2)

    decorator_min = show_min(2, 3)
